Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Ερώτηση σχετικά με φόρμες

Îåêßíçóå áðü ôï ìÝëïò Azular. Τελευταία δημοσίευση από το μέλος Azular στις 15-12-2009, 22:28. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-12-2009, 11:41 55879

    Ερώτηση σχετικά με φόρμες

    Έχω μια φόρμα Login. Και όταν κάνει Login o χρήστης πρέπει να ανοίγει η Κύρια Φόρμα του προγράμματος και να κλείνει η Login. Αυτό που κάνω είναι το εξής
                    Dim frmMain As New MainForm
    Me.Close()
    frmMain .Show()
    Όμως σε αυτήν την περίπτωση κλείνει τελείως το πρόγραμμα αντί να ανοίγει η κύρια φόρμα και μου φαίνεται λογικό.
    Δοκίμασα μετα αντί για Me.Close() να βάλω Me.Hide()αλλά στην περίπτωση αυτή κλείνοντας ο χρήστης την κύρια φόρμα, η Login φόρμα παραμένει ανοικτή αλλά Hide.
    Ποιά είναι η λύση σε αυτό το πρόβλημα;
  •  15-12-2009, 12:28 55880 σε απάντηση της 55879

    Απ: Ερώτηση σχετικά με φόρμες

    Αν έχεις ορίσει ως startup form την Login αντί για τη Main είναι λογικό να κλείσει η εφαρμογή. Αντί γι αυτό μπορείς να βάλεις τον κώδικα που ανοίγει τη φόρμα του Login και ελέγχει τα credentials σε μία μέθοδο που θα καλείται από το Form_Load της Main. Δεν είναι απαραίτητο να τον βάλεις σε μία νέα μέθοδο, έτσι όμως θα αποφύγεις το χάος μέσα στην Form_Load.

    Επίσης, καλό είναι οι εισαγωγικές ερωτήσεις να γίνονται στα "Πρώτα Βήματα".


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-12-2009, 12:47 55881 σε απάντηση της 55880

    Απ: Ερώτηση σχετικά με φόρμες

    Άν όμως στο Startup ορισω την Main form, τότε θα ξεκινά πρώτη αυτή και μετά η LoginForm.
    Δηλαδή μέσα στο Form_Load της Main έχω κάνει αυτό
            Dim frmLoginForm As New LoginForm
     
    frmLoginForm .Show()
    Εγώ όμως θέλω να ξεκινήσω πρώτα την Login χωρίς να φαίνεται αρχικά η Main Form. Μόλις ο χρήστης κάνει Login τότε να κλέινει η φόρμα και να ανοίγει η Main form.

  •  15-12-2009, 13:15 55883 σε απάντηση της 55881

    Απ: Ερώτηση σχετικά με φόρμες

    Αντί για Show κάνε ShowDialog. Μέχρι να κλείσει η Login φόρμα δεν θα εμφανιστεί η Main
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-12-2009, 13:52 55884 σε απάντηση της 55883

    Απ: Ερώτηση σχετικά με φόρμες

    Ναι κάπως έτσι το έκανα τελικά επειδή όμως αν κάποιος κλείσει απλα την Login form στην συνέχεια περναέι στην Main form,
    όρισα μια boolean μεταβλητη (Closefrm) ώστε όταν είναι true και κλεινει η φόρμα να κλείνει τελείως και όλη η εφαρμογή και να μην προχωράει στην Mainform
    Όταν δε η μεταβλητή είναι false τότε κλείνει η φόρμα αλλά προχωραει στην Mainform.
    Στο FormClosed Event έκανα
    If Closefrm = True Then
       Application.Exit()
    End If


    Η μεταβλητή Closefrm πέρνει τιμή αναλόγως αν το login είναι επιτυχές ή όχι.

    Αυτό, έκανα και απ'ότι φάινεται παίζει οπότε το αφήνω όπως είναι.Smile
  •  15-12-2009, 14:19 55885 σε απάντηση της 55884

    Απ: Ερώτηση σχετικά με φόρμες

    Δεν χρειαζόταν να κάνεις τίποτε από αυτά. Η ShowDialog σου επιστρέφει τιμή ανάλογα με το αν ο χρήστης πάτησε OK, Cancel κλπ. Επιπλέον, ο έλεγχος μπορεί να γίνει στη συνάρτηση που φορτώνει τη Login φόρμα. Αν αυτή η συνάρτηση επιστρέψει false, σταματάς το φόρτωμα της Main.

    Καλό θα είναι να κοιτάξεις λίγο πως δουλεύουν οι φόρμες, πως εμφανίζεις Modal, Modeless φόρμες και πως δουλεύουν τα OK, Cancel κλπ πριν προχωρήσεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-12-2009, 22:28 55889 σε απάντηση της 55885

    Απ: Ερώτηση σχετικά με φόρμες

    Ευχαριστώ για την καθοδήγηση. Πολλές φορές στην λαιμαργία μου να μάθω καινούργια πράγματα και να αφομοιώσω γρήγορα αυτά που διαβάζω πολλά πράγματα δεν τα αγγίζω σε βάθος.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems